package by.brest.bspc.domain;

import java.util.LinkedList;
import java.util.List;

/**
 * This class contains the data of student.
 *
 * @date: 7/28/13 9:44 AM
 * @author: natallia
 */
public class Student {
    private String id;
    private String name;
    private String study;
    private String faculty;
    private Specialty specialty;
    private int classNumber;
    private String groupName;
    private List<Grade> gradeList;
    private String status;

    public Student() {
        this.id = null;
        this.name = null;
        this.study = null;
        this.faculty = null;
        this.specialty = null;
        this.classNumber = 0;
        this.groupName = null;
        this.gradeList = new LinkedList<>();
        this.status = null;
    }

    /**
     * Gets student ID
     *
     * @return student ID
     */
    public String getId() {
        return id;
    }

    /**
     * Sets student id
     *
     * @param id student id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * Gets student name
     *
     * @return student name
     */
    public String getName() {
        return name;
    }

    /**
     * Sets student name
     *
     * @param name student name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * Gets form of student learning
     *
     * @return form of student learning
     */
    public String getStudy() {
        return study;
    }

    /**
     * Sets form of student learning
     *
     * @param study form of student learning
     */
    public void setStudy(String study) {
        this.study = study;
    }

    /**
     * Gets faculty name
     *
     * @return faculty name
     */
    public String getFaculty() {
        return faculty;
    }

    /**
     * Sets faculty name
     *
     * @param faculty faculty name
     */
    public void setFaculty(String faculty) {
        this.faculty = faculty;
    }

    /**
     * Gets specialty object
     *
     * @return specialty object
     */
    public Specialty getSpecialty() {
        return specialty;
    }

    /**
     * Sets specialty object
     *
     * @param specialty specialty object
     */
    public void setSpecialty(Specialty specialty) {
        this.specialty = specialty;
    }

    /**
     * Gets students study year
     *
     * @return students study year
     */
    public int getClassNumber() {
        return classNumber;
    }

    /**
     * Sets students study year
     *
     * @param classNumber students study year
     */
    public void setClassNumber(int classNumber) {
        this.classNumber = classNumber;
    }

    /**
     * Gets student group name
     *
     * @return student group name
     */
    public String getGroupName() {
        return groupName;
    }

    /**
     * Sets student group name
     *
     * @param groupName student group name
     */
    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }

    /**
     * Gets list all results of student
     *
     * @return list all results of student
     */
    public List<Grade> getGradeList() {
        return gradeList;
    }

    /**
     * Sets list all results of student
     *
     * @param gradeList list all results of student
     */
    public void setGradeList(List<Grade> gradeList) {
        this.gradeList = gradeList;
    }

    /**
     * Gets student status
     *
     * @return student status
     */
    public String getStatus() {
        return status;
    }

    /**
     * Sets student status
     *
     * @param status student status
     */
    public void setStatus(String status) {
        this.status = status;
    }


    @Override
    public String toString() {
        return "Student{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", study='" + study + '\'' +
                ", faculty='" + faculty + '\'' +
                ", specialty=" + specialty +
                ", classNumber=" + classNumber +
                ", groupName='" + groupName + '\'' +
                ", gradeList=" + gradeList +
                ", status='" + status + '\'' +
                '}';
    }
}